// 演示结构数组的程序
#include <stdio.h>

struct time
{
        int hour;
        int minutes;
        int seconds;
};

int main(void)
{
        struct time timeUpdate(struct time now);

        struct time testTime[5] = {
                { 11, 59, 59 }, { 12, 0, 0 }, { 1, 29, 59 },
                { 23, 59, 59 }, { 19, 12, 27 }};
        int i;

        for (i = 0; i < 5; ++i) {
                printf("Time is %.2i:%.2i:%.2i",
                    testTime[i].hour, testTime[i].minutes, testTime[i].seconds);

                testTime[i] = timeUpdate(testTime[i]);

                printf("...one second later it's: %.2i:%.2i:%.2i\n",
                    testTime[i].hour, testTime[i].minutes, testTime[i].seconds);
        }

        return 0;
}

struct time timeUpdate(struct time now)
{
        ++now.seconds;

        if (now.seconds == 60) {
                now.seconds = 0;
                ++now.minutes;

                if (now.minutes == 60) {
                        now.minutes = 0;
                        ++now.hour;

                        if (now.hour == 24) {
                                now.hour = 0;
                        }
                }
        }

        return now;
}